package com.zxw.设计模式.创建型.建造者模式.建造者模式1.指挥者;

import com.zxw.设计模式.创建型.建造者模式.建造者模式1.产品.Bike;
import com.zxw.设计模式.创建型.建造者模式.建造者模式1.建造者.抽象建造者.BikeBuilder;

/**
 * @projectName: util-cloud
 * @package: com.zxw.设计模式.创建型.建造者模式.建造者模式1.指挥者
 * @className: Director
 * @author: zhangxuewei
 * @description: 指挥者，想象成 设计者
 * @date: 2023/5/16 16:35
 * @version: 1.0
 */
public class Director {

    private BikeBuilder bikeBuilder;

    public Director(BikeBuilder bikeBuilder) {
        this.bikeBuilder = bikeBuilder;
    }

    /**
     * @param :
     * @return Bike
     * @author zhangxuewei
     * @description 依次触发建造方法进行建造
     * @date 2023/5/16 16:41
     */
    public Bike construct() {
        bikeBuilder.builderFrame();
        bikeBuilder.builderSeat();
        return bikeBuilder.createBike();
    }
}
